package com.smallx.xpath;

import java.net.*;
import java.util.Set;
import java.util.logging.Logger;
import org.infoset.xml.Document;
import org.infoset.xml.Name;
import org.infoset.xml.DocumentLoader;
import org.infoset.xml.NamespaceScope;
import org.infoset.xml.XMLException;


/**
 * This interface represents the information necessary to compile an
 * XPath expression.
 * @author  R. Alexaner Milowski
 */
public interface StaticContext {
   

   /**
    * Returns the staticly known namespaces
    */
   NamespaceScope getNamespaceScope();

   /**
    * Returns a loader for getting statically known documents.
    */
   DocumentLoader getDocumentLoader();
   
   /**
    * Returns the base URI of the expression 
    */
   URI getBaseURI();
   
   /**
    * Returns a collection of variable names
    */
   Set<Name> getInScopeVariables();
   
   Set<Document> getCollection(URI collection)
      throws XMLException;
   
   Document getDocument(URI location)
      throws XMLException;
   
   Logger getTraceLog();
   
}
